package com.fusuhai.dao;

import com.fusuhai.bean.UserBean;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.time.LocalDate;
import java.util.List;

@Repository
public interface UserDao {
    /**
     *登录
     * @param userName 账号
     * @param userPwd 密码
     * @return 登陆对象
     */
    UserBean login(@Param("userName") String userName,
                   @Param("userPwd") String userPwd);
    /**
     * 登陆界面注册用户
     * @param userBean  用户实体
     */
    void addUser(UserBean userBean);

    /**
     * 通过用户id删除用户信息
     * @param userId 用户id
     */
    @Delete("DELETE FROM user WHERE user_id=#{userId}")
    void deleteUser(int userId);

    /**
     * 通过用户id更改用户密码
     * @param userId   用户Id
     * @param newPwd    新密码
     */
    void updateUser(@Param("userId") int userId,
                    @Param("pwd")String newPwd);

    /**
     * 根据用户权限等级查询用户
     * @param userLevel 权限等级
     * @return 用户实体
     */
    List<UserBean> selectLevel(@Param("userLevel") String userLevel);


    void addDate(@Param("userAccount") String userAccount, @Param("date") LocalDate date);

    /**
     * 根据日期查询日志
     * @param sDate 开始日期
     * @param eDate 结束日期
     * @return 日志信息
     */
    List<UserBean> selectDate(@Param("sDate") LocalDate sDate,
                              @Param("eDate") LocalDate eDate);


    List<UserBean> selectAllDate();
}
